#include <future>
#include <iostream>
#include <chrono>
#include<thread>
using namespace std;
//future要等待一个返回值，promise可以手动设置一个返回值

void add(int num1, int num2 ,std::promise<int> promi)
{
    std::cout << "加法" << endl;
    std::this_thread::sleep_for(std::chrono::seconds(5));
    promi.set_value(num1+num2);
    return ;
}

int main()
{
    std::promise<int> promi;
    std::future<int> futu=promi.get_future(); //关联promise和future
    //创建线程
    std::thread task_thread(add,10,20,/*std::move(promi)*/ std::move(promi));
    
    int res=futu.get();
    cout<<res<<endl;
    
    task_thread.join();
    return 0;
}